package com.cskaoyan.singleton;

/**
 * 单例 --> 获得该类型的实例始终是同一个
 * @author stone
 * @date 2021/12/23 10:00
 */
public class MySingleton4 {


    // 就是在第一次返回实例之前
    private static MySingleton4 mySingleton;


    private MySingleton4() {
    }

    public static synchronized MySingleton4 getInstance() {
        //类中的静态方法里能否使用其私有的构造方法 → 可以

        // 实例化的代码只执行一次，第一次返回实例之前
        //MySingleton mySingleton = new MySingleton();
        //我们要在第一次调用方法的时候完成实例化
        // 我们如何知道这是第一次调用这个方法 → 有什么特征
        if (mySingleton == null) { //它没有实例化 --> 第一次调用方法
            mySingleton = new MySingleton4();
        }

        return mySingleton;
    }
}
